Hi Tom,
I’ve been
asked by a customer to debug his machine, which has been
converted to Kmotion (KFLOP + Kanalog) by someone else.
I’ve been working on it for quite some time now and the
machine has a hard to find bug. Sometimes (about 1 out
of 50 runs of the same
G-code) the KFLOP crashes. The “SWE” watchdog pin goes
high and the KFLOP
becomes unreachable.
I have
taken quite some measures so far, without any
improvement. Here’s what I’ve
done up till now:
-Added
diodes to all relays (these were missing) to make sure
the recirculating
current patch exists and that the wires in the path are
as short as possible
-Rewired lots
of cabling to get rid of ground loops
-Changed the power
supply to a completely isolated power supply (floating
ground)
-Added
common mode filtering to power supply lines
-Added
galvanic isolation to all switch outputs (board now uses
the opto outs i.s.o
the FET outputs)
-Changed
from a laptop type setup with very long USB cable to a
dedicated mini-PC with a USB
cable of only 8 inches.
-Added the
USB isolator from Olimex
-Added
additional capacitors to the reset lines of KFLOP (read
that in an on-line post
somewhere)
Here’s what
I still plan to do before my box of hardware tricks runs
out:
-Add common
mode filters to the output ADC’s which control the axes
-Take
radiated EMC emission measures (add grounded enclosure
around KFLOP + Kanalog)
-Add
ferrite chokes around the I/O to the encoders
I have
another very similar machine that runs just fine,
without most of the measures
from the list above. I’m beginning to suspect that it
might not be a hardware
problem, since all the measures so far have not improved
the situation even the
slightest bit.
So here are
my questions:
-Is it
possible that the watchdog triggers because of a SW
problem (perhaps I should
look for a division by zero or something in the code
that has been written by
the guy who did the conversion)?
-Have you
had a customer with a similar “incidental watchdog
trigger” issue, and if so,
how was it solved?
-Do you
have any suggestions how to further go ahead with
problem solving of this
issue?